function p1 (){
  return new Promise((resolve,reject)=>{
    setTimeout(()=>{
      // random() > 0.5 ? resolve(1) : resolve(null); // 成功
      random() > 0.8 ? resolve(1) : reject(null); // 成功
      // resolve(1)
      // reject(); // 失败
    },200);
  })
}
function p2 (){
  return new Promise((resolve,reject)=>{
    setTimeout(()=>{
      // random() > 0.5 ? resolve(2) : resolve(null); // 成功
      random() > 0.8 ? resolve(2) : reject(null); // 成功
      // resolve(2)
      // reject(2); // 失败
    },300);
  })
}
function p3 (){
  return new Promise((resolve,reject)=>{
    setTimeout(()=>{
      // random() > 0.5 ? resolve(3) : resolve(null); // 成功
      random() > 0.8 ? resolve(3) : reject(null); // 成功
      // resolve(3)
    },800);
  })
}
function random (){
  return Math.random()
}

// Promise.all([p1(),p2(),p3()]).then(res=>{
//   console.log(res)
//   // 不论成功还是失败 都会走.then
// })

// any : 任意一个成功 就会走.then 
// Promise.any([p1(),p2(),p3()]).then(res=>{
//   console.log(res) // 只会拿到一个结果 不论这个结果成功还是失败
//   // 不论成功还是失败 都会走.then
// })

// race : 跑
// Promise.race([p1(),p2(),p3()]).then(res=>{
//     console.log(res) // 只会拿到一个结果 不论这个结果成功还是失败
//     // 不论成功还是失败 都会走.then
//   })
Promise.allSettled([p1(),p2(),p3()]).then(res=>{
    console.log(res) // 只会拿到一个结果 不论这个结果成功还是失败
    // 不论成功还是失败 都会走.then
})




// all
// allSettled
// any
// race


// reject
// resolve